ChatWorkでDatadogのアラート通知を受けてみた
はじめに
AWSチームのすずきです。
今回、国産チャットツールとして知られるChatWork、監視SaaSのDatadogが検知した アラートの通知先として設定する機会がありましたので、その内容を紹介させて頂きます。
準備
- チャットワークAPIの利用に必要となるAPIトークンの発行と、通知先(room_id)の確認を行います。
APIトークン発行
- 参考リンク
チャットワークの「動作設定」画面に「API発行」が表示されない場合、APIトークンの発行を管理者に依頼してください。
APIテスト環境
OS
- Amazon Linux
APIキーの動作テストは、AmazonLinux標準の「curl」を利用しました。
追加パッケージ
- jq
JSONの視認性を向上、フィルタリングの実現のため、AmazonLinux標準リポジトリより「jq」をインストールしました。
sudo yum install jq -y
API実行
- APIトークンの動作確認を兼ね、参加チャットの一覧取得するAPIを実行します。
- ChatWork APIドキュメント(エンドポイント: /rooms)
TOKEN="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" curl -X GET -H "X-ChatWorkToken: ${TOKEN}" "https://api.chatwork.com/v1/rooms" | head -n 3
room_id確認
- チャット通知先として利用する「room_id」を確認します。
- チャットワークのURL、GETパラメータとして表示される「rid」は「room_id」は異なりますのでご注意ください。
グループチャット一覧確認
TOKEN="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" curl -X GET -H "X-ChatWorkToken: ${TOKEN}" "https://api.chatwork.com/v1/rooms" | jq '.[]|select(.type == "group") '
チャット名指定
TOKEN="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" curl -X GET -H "X-ChatWorkToken: ${TOKEN}" "https://api.chatwork.com/v1/rooms" | jq '.[]|select(.name == "テスト") '
実行例
{ "room_id": 0000000, "name": "テスト", "type": "group", "role": "member", "sticky": false, "unread_num": 2, "mention_num": 0, "mytask_num": 0, "message_num": 2, "file_num": 0, "task_num": 0, "icon_path": "https://tky-chat-work-appdata.s3.amazonaws.com/icon/ico_group.png", "last_update_time": 0000000 }
Datadog設定
Integration 設定
- ChatWork Integration 設定画面を開きます
通知先設定
- Auth token として、先に疎通テストを実施したAPIトークンを記入します。
- Room Idは、先に確認した「room_id」を記入します。
- Rome Name は任意の名称とします
監視設定
監視設定作成
- 「New Monitor」より監視設定を作成します
監視対象指定
- 「Metric」より監視対象を指定します
- 今回、SQSのデッドレターキューの発生を想定し、デットレターキューとして指定したキューに蓄積したメッセージ数を、監視対象としています。
監視条件設定
- Alert, Warnningの閾値を指定します。
- Datadog,Cloudwatchメトリックの取得頻度は約10分、duringの設定時にはご注意ください。
通知メッセージ
- チャット通知に含めるメッセージを記載します
- 何らかの障害対応が予想されるアラートの場合、その手順などの案内が可能です
通知先指定
- 先にChatWork Integrationで設定したチャット情報を指定します。
アラートテスト
Datadogのアラート通知が実施される事を確認します。
擬似障害
- 監視対象としたSQSのキューに対し、AWSコンソールよりメッセージを投入します
Datadog 検出確認
- Datadogのコンソールで、アラート発生したことを確認します
チャットワーク通知確認
- 障害発生を示すメッセージが到着しています。
チャットリンク表示確認
- チャット記載のURLより、該当アラートを示すDatadogの詳細画面に遷移することができます。
まとめ
今回はDatadogからChatWorkへの設定例を紹介させて頂きましたが、 Datadogはチャット通知先として、SlackやHipChatなども利用可能です。
DatadogのIntegration導入、設定とも簡単に実施できますので、ぜひお試しください。